use std::io::BufRead;

pub fn converter(input: &str, tp: &str) -> String {
    converter_inner(input, tp).expect("文件不存在")
}

// 通过建立的词库，进行搜索，感觉这是比较低级的，因为如果我们是句子的话，我们要先分词，分词之后，再进行转换
// 不同的情况，转换的也不近相同，这个时候利用深度学习模型，或获得较好的效果。我开始制作了jiaba分词器的rust版本，
// 结果在这个测试下比较的慢。
fn converter_inner(input: &str, tp: &str) -> anyhow::Result<String> {
    let file = std::fs::File::open("./STPhrases.txt")?;
    let reader = std::io::BufReader::new(file);
    for line in reader.lines() {
        let line = line?;
        let key_value = line.split("\t").collect::<Vec<_>>();
        if key_value.len() != 2 {
            continue;
        }
        if tp == "s2t" {
            if key_value[0] == input {
                return Ok(key_value[1].to_owned());
            }
        }

        if tp == "t2s" {
            if key_value[1] == input {
                return Ok(key_value[0].to_owned());
            }
        }
    }
    Ok(input.to_owned())
}
